import Vue from 'vue'
import  Vuex from 'vuex'
Vue.use(Vuex)

import  axios from 'axios'


const  state={
    msg:'你好 vuex',
    homeList:'',
    count:1
}
const mutations={

    changemsg(state) {
        state.msg='我被改变了 马上要学习微信小程序了 开心不'
    },
    homeCommit() {
        state.msg='我是home组件提交的action改变state里面的数据'
    },
    saveRotData(state,data){
        state.homeList=data
    },
    addStateCount(state,num) {
        state.count+=num
    }
}



// Action 提交的是 mutation，而不是直接变更状态。
// Action 可以包含任意异步操作
const  actions={
    disHome(context) {  //context 上下文的意思
        alert('dishome')
        console.log(context)
        //提交mutation
        context.commit('homeCommit')


    },
    disGetData(context){
        let url='http://www.liulongbin.top:3006/api/robot'
        let data={spoken:'阿姨我不想奋斗了'}
        axios.get(url,{
            params:data
        })
        .then(res=>{
            console.log(res.data)
            // context.commit('第一个参数是方法名字','第二个参数是我们的数据')
            context.commit('saveRotData',res.data.data)
            
        })
    },

    //增加count的值 
    addCount(context,num) {
        context.commit('addStateCount',num)
    }

}

//getters 类似我们computed    
const   getters={
    totalCount(state){
        return   state.count+100
    }
}


const store=new  Vuex.Store({
// state :state,
state,
mutations,
getters,
actions

})




export default  store